Academy

ওয়েব ডেভেলপমেন্ট

Microsoft Technologies - সি শার্প (C#) - NCTB BOOK

সি# ব্যবহার করে ওয়েব ডেভেলপমেন্ট করার জন্য সাধারণত ASP.NET এবং ASP.NET Core ফ্রেমওয়ার্ক ব্যবহার করা হয়। ASP.NET হলো Microsoft-এর একটি শক্তিশালী ওয়েব ফ্রেমওয়ার্ক, যা ডেভেলপারদের দ্রুত এবং কার্যকরী ওয়েব অ্যাপ্লিকেশন এবং API তৈরি করতে সহায়ক। এটি সহজ এবং কার্যকরী ওয়েব ডেভেলপমেন্টের জন্য উপযোগী অনেক টুল এবং লাইব্রেরি সরবরাহ করে।


ASP.NET ও ASP.NET Core এর মধ্যে পার্থক্য

ASP.NETASP.NET Core
Windows-এ ভিত্তিকক্রস-প্ল্যাটফর্ম (Windows, macOS, Linux)
.NET Framework এর উপর ভিত্তি করে.NET Core এবং .NET 5+ এর উপর ভিত্তি করে
উচ্চ পারফরম্যান্সের জন্য সীমিতউচ্চ পারফরম্যান্স এবং দ্রুতগতি সম্পন্ন
টাইটলি ইন্টিগ্রেটেড (IIS নির্ভর)অনেক ধরনের সার্ভারে চলতে সক্ষম (IIS, Nginx)

ASP.NET Core ক্রস-প্ল্যাটফর্ম সমর্থন এবং উন্নত পারফরম্যান্সের জন্য অত্যন্ত জনপ্রিয়। নিচে ASP.NET এবং ASP.NET Core ব্যবহার করে ওয়েব অ্যাপ্লিকেশন তৈরি করার উদাহরণ দেওয়া হলো।


ASP.NET Core দিয়ে ওয়েব ডেভেলপমেন্ট শুরু করা

১. প্রজেক্ট তৈরি করা

Visual Studio ব্যবহার করে ASP.NET Core ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন। নতুন প্রজেক্ট তৈরি করতে নিচের ধাপগুলো অনুসরণ করুন:

  1. File -> New -> Project এ যান।
  2. ASP.NET Core Web Application নির্বাচন করুন।
  3. প্রজেক্টের নাম দিন এবং Create ক্লিক করুন।
  4. প্রজেক্টের টেমপ্লেট নির্বাচন করতে বলবে। Web Application (Model-View-Controller) বা API নির্বাচন করুন।

২. ASP.NET Core ফোল্ডার স্ট্রাকচার

ASP.NET Core প্রজেক্টে বেশ কয়েকটি গুরুত্বপূর্ণ ফোল্ডার থাকে:

  • Controllers: এখানে MVC এর কন্ট্রোলারগুলো রাখা হয়, যা ওয়েব রিকোয়েস্ট পরিচালনা করে।
  • Models: এখানে ডাটাবেস বা অন্যন্য ডেটা স্ট্রাকচারের জন্য মডেল তৈরি করা হয়।
  • Views: এখানে UI বা ভিজ্যুয়াল লেয়ার ফাইলগুলো রাখা হয়।
  • wwwroot: এখানে স্ট্যাটিক ফাইল, যেমন CSS, JavaScript, ইমেজ রাখা হয়।
  • appsettings.json: এই ফাইলে অ্যাপ্লিকেশনের কনফিগারেশন সেটিংস রাখা হয়, যেমন ডাটাবেস কানেকশন স্ট্রিং।

৩. কন্ট্রোলার তৈরি করা

কন্ট্রোলারটি হলো ওয়েব অ্যাপ্লিকেশনের মূল অংশ, যা রিকোয়েস্ট গ্রহণ করে এবং ডেটা বা ভিউ রিটার্ন করে।

নিচে একটি সহজ কন্ট্রোলারের উদাহরণ দেওয়া হলো:

using Microsoft.AspNetCore.Mvc;

namespace MyWebApp.Controllers
{
    public class HomeController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }

        public IActionResult About()
        {
            ViewData["Message"] = "This is the About page.";
            return View();
        }
    }
}
  • Index এবং About মেথড তৈরি করা হয়েছে, যা যথাক্রমে Index এবং About ভিউ রিটার্ন করে।

৪. ভিউ তৈরি করা

ভিউ হলো HTML টেমপ্লেট যা ওয়েব ব্রাউজারে প্রদর্শিত হয়। ভিউ সাধারণত Razor টেমপ্লেট ইঞ্জিন ব্যবহার করে লেখা হয় এবং .cshtml এক্সটেনশনে থাকে।

নিচে Index.cshtml ফাইলের একটি উদাহরণ দেওয়া হলো:

@{
    ViewData["Title"] = "Home Page";
}

<h1>Welcome to My Web App</h1>
<p>This is the home page.</p>

ডাটাবেস কানেক্টিভিটি

ASP.NET Core এ ডাটাবেস কানেক্টিভিটির জন্য সাধারণত Entity Framework Core ব্যবহার করা হয়। এটি ORM (Object-Relational Mapping) টুল, যা ডাটাবেসের সাথে সহজেই ইন্টিগ্রেট করে।

১. মডেল তৈরি করা

public class Employee
{
    public int ID { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

২. DbContext তৈরি করা

using Microsoft.EntityFrameworkCore;

public class MyDbContext : DbContext
{
    public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { }
    public DbSet<Employee> Employees { get; set; }
}

৩. Startup.cs এ DbContext রেজিস্টার করা

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<MyDbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

    services.AddControllersWithViews();
}

৪. মাইগ্রেশন চালানো

Entity Framework Core দিয়ে ডাটাবেস তৈরি করতে মাইগ্রেশন ব্যবহার করা হয়।

Add-Migration InitialCreate
Update-Database

ASP.NET Core এ API তৈরি করা

ASP.NET Core API তৈরি করতে নিচের ধাপগুলো অনুসরণ করুন:

১. API কন্ট্রোলার তৈরি করা

using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;

namespace MyWebApp.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class EmployeesController : ControllerBase
    {
        private readonly MyDbContext _context;

        public EmployeesController(MyDbContext context)
        {
            _context = context;
        }

        [HttpGet]
        public IEnumerable<Employee> Get()
        {
            return _context.Employees;
        }

        [HttpPost]
        public IActionResult Post([FromBody] Employee employee)
        {
            _context.Employees.Add(employee);
            _context.SaveChanges();
            return CreatedAtAction(nameof(Post), new { id = employee.ID }, employee);
        }
    }
}

ব্যাখ্যা

  • [HttpGet] এবং [HttpPost] অ্যাট্রিবিউট ব্যবহার করে বিভিন্ন HTTP রিকোয়েস্ট হ্যান্ডল করা হয়।
  • IActionResult রিটার্ন টাইপ বিভিন্ন HTTP স্ট্যাটাস কোডের জন্য ব্যবহৃত হয়।

Razor Pages ব্যবহার করে ওয়েব ডেভেলপমেন্ট

ASP.NET Core এ Razor Pages একটি সহজ এবং সরাসরি ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য ব্যবহৃত হয়। এতে MVC-এর মত আলাদা কন্ট্রোলার প্রয়োজন হয় না, কারণ এটি প্রতিটি পেজের সাথে সরাসরি কোড যুক্ত করতে দেয়।

Razor Page উদাহরণ: Index.cshtml

@page
@model IndexModel
@{
    ViewData["Title"] = "Home Page";
}

<h2>Hello, @Model.Message!</h2>

Index.cshtml.cs ফাইলে মডেল কোড যুক্ত করা

using Microsoft.AspNetCore.Mvc.RazorPages;

public class IndexModel : PageModel
{
    public string Message { get; private set; }

    public void OnGet()
    {
        Message = "Welcome to Razor Pages!";
    }
}

ASP.NET Core এর বৈশিষ্ট্য

  • MVC এবং Razor Pages: ওয়েব পেজ তৈরি ও পরিচালনা করতে সহজ।
  • API তৈরি: RESTful API সহজে তৈরি করা যায়।
  • Dependency Injection (DI): সেবা ব্যবস্থাপনা ও কোড পুনঃব্যবহারের জন্য DI সমর্থিত।
  • Entity Framework Core: ORM টুল, যা ডেটাবেস পরিচালনা সহজ করে।
  • Middleware: রিকোয়েস্ট প্রসেসিং পাইপলাইনে মডুলার অংশ যোগ করা যায়, যেমন অথেনটিকেশন, অথোরাইজেশন।

সংক্ষেপে ASP.NET Core

বৈশিষ্ট্যব্যবহার
MVC Patternমডেল, ভিউ, এবং কন্ট্রোলার এর মাধ্যমে অ্যাপ্লিকেশন তৈরিতে
Razor Pagesসরাসরি পেজভিত্তিক কোড ব্যবহারে সহজ এবং দ্রুতগতি সম্পন্ন
Entity Framework CoreORM টুল, যা ডেটাবেস পরিচালনায় সুবিধা দেয়
APIRESTful API তৈরিতে সহজ এবং কার্যকরী

ASP.NET Core একটি আধুনিক এবং শক্তিশালী ওয়েব ফ্রেমওয়ার্ক যা সি# ডেভেলপারদের ওয়েব অ্যাপ্লিকেশন, API, এবং ইন্টারঅ্যাকটিভ ওয়েব পেজ তৈরিতে সহায়তা করে।

Content added By

ASP.NET দিয়ে ওয়েব অ্যাপ তৈরি

ASP.NET হলো Microsoft এর তৈরি একটি শক্তিশালী ফ্রেমওয়ার্ক, যা দিয়ে সহজেই ডায়নামিক এবং স্কেলেবল ওয়েব অ্যাপ্লিকেশন তৈরি করা যায়। ASP.NET ব্যবহার করে আপনি ওয়েব অ্যাপ্লিকেশন, API এবং অন্যান্য ওয়েব-ভিত্তিক সলিউশন তৈরি করতে পারেন।

ASP.NET ওয়েব অ্যাপ্লিকেশন তৈরি করার ধাপ

ASP.NET দিয়ে ওয়েব অ্যাপ্লিকেশন তৈরি করতে Visual Studio ব্যবহার করা হয়। Visual Studio এর সরাসরি সাপোর্ট থাকার কারণে ASP.NET দিয়ে ওয়েব অ্যাপ তৈরি করা সহজ।


ধাপ ১: নতুন ASP.NET প্রজেক্ট তৈরি

১. Visual Studio ওপেন করুন। ২. File > New > Project এ যান। ৩. ASP.NET Core Web App (Model-View-Controller) নির্বাচন করুন (এই টেমপ্লেটটি ASP.NET এর জন্য সর্বাধিক ব্যবহৃত MVC প্যাটার্ন) এবং Next এ ক্লিক করুন। ৪. প্রজেক্টের জন্য নাম দিন এবং Create ক্লিক করুন। ৫. .NET Core এবং ASP.NET Core 5.0 বা উপরের ভার্সন সিলেক্ট করুন, এবং Create এ ক্লিক করুন।


ASP.NET প্রজেক্ট স্ট্রাকচার

একটি ASP.NET প্রজেক্টে সাধারণত নিচের ফোল্ডারগুলো থাকে:

  1. Controllers: এখানে কন্ট্রোলার ফাইলগুলো থাকে, যা ইউজারের ইনপুট প্রসেস করে এবং ভিউতে তথ্য প্রেরণ করে।
  2. Models: এখানে মডেল ফাইলগুলো থাকে, যা ডাটার সাথে কাজ করে।
  3. Views: এখানে ভিউ ফাইলগুলো থাকে, যা UI বা HTML ফরম্যাটে ডেটা প্রদর্শন করে।
  4. wwwroot: এই ফোল্ডারে স্ট্যাটিক ফাইল যেমন CSS, JavaScript, এবং ইমেজ ফাইল থাকে।
  5. appsettings.json: এখানে ডাটাবেস কানেকশন স্ট্রিং সহ বিভিন্ন কনফিগারেশন থাকে।

ধাপ ২: একটি কন্ট্রোলার তৈরি

ধরা যাক, আমরা একটি HomeController তৈরি করব, যেখানে একটি ইন্ডেক্স অ্যাকশন মেথড থাকবে।

১. Controllers ফোল্ডারে ডান-ক্লিক করে Add > Controller নির্বাচন করুন। ২. MVC Controller - Empty নির্বাচন করুন এবং Add এ ক্লিক করুন। ৩. HomeController নামে একটি নতুন কন্ট্রোলার তৈরি হবে।

HomeController.cs ফাইলে নিচের কোডটি লিখুন:

using Microsoft.AspNetCore.Mvc;

public class HomeController : Controller
{
    public IActionResult Index()
    {
        return View();
    }

    public IActionResult About()
    {
        ViewData["Message"] = "This is an ASP.NET web application.";
        return View();
    }
}

ব্যাখ্যা

  • Index মেথড: Index মেথডটি Views/Home/Index.cshtml ভিউ ফাইলে রেন্ডার করবে।
  • About মেথড: About মেথডটি ভিউতে একটি মেসেজ পাঠাবে এবং ভিউ রেন্ডার করবে।

ধাপ ৩: একটি ভিউ তৈরি

Views ফোল্ডারে Home নামে একটি ফোল্ডার তৈরি করুন। তারপর Home ফোল্ডারের মধ্যে Index.cshtml এবং About.cshtml নামে দুটি ফাইল যোগ করুন।

Index.cshtml ফাইলে কোড লিখুন:

@{
    ViewData["Title"] = "Home Page";
}

<h1>Welcome to ASP.NET Web Application</h1>
<p>This is the home page.</p>

About.cshtml ফাইলে কোড লিখুন:

@{
    ViewData["Title"] = "About";
}

<h1>About</h1>
<p>@ViewData["Message"]</p>

ব্যাখ্যা

  • @{ ViewData["Title"] = "Home Page"; }: ভিউতে টাইটেল সেট করা হয়েছে।
  • @ViewData["Message"]: কন্ট্রোলার থেকে পাঠানো মেসেজ ভিউতে প্রদর্শিত হবে।

ধাপ ৪: ডাটাবেস কানেক্টিভিটি

ASP.NET এ ডাটাবেস কানেক্টিভিটি সেটআপ করতে Entity Framework Core ব্যবহার করা হয়, যা ORM (Object-Relational Mapping) এর মাধ্যমে ডাটাবেস ম্যানেজ করতে সহায়ক।

প্রথমে Entity Framework Core ইনস্টল করুন

Visual Studio এর Package Manager Console ওপেন করুন এবং নিচের কমান্ডটি লিখুন:

Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools

Model তৈরি করুন

Models ফোল্ডারে একটি Student নামে ক্লাস তৈরি করুন:

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

DbContext তৈরি

Models ফোল্ডারে ApplicationDbContext নামে একটি নতুন ক্লাস তৈরি করুন:

using Microsoft.EntityFrameworkCore;

public class ApplicationDbContext : DbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
    {
    }

    public DbSet<Student> Students { get; set; }
}

appsettings.json ফাইলে কানেকশন স্ট্রিং যুক্ত করুন

"ConnectionStrings": {
    "DefaultConnection": "Server=your_server_name;Database=your_database_name;User Id=your_username;Password=your_password;"
}

Startup.cs ফাইলে DbContext রেজিস্টার করা

using Microsoft.EntityFrameworkCore;

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();
    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}

ধাপ ৫: ডাটাবেস মাইগ্রেশন চালানো

Entity Framework ব্যবহার করে ডাটাবেসে টেবিল তৈরি করতে Package Manager Console এ নিচের কমান্ডগুলো লিখুন:

Add-Migration InitialCreate
Update-Database

এই মাইগ্রেশন Entity Framework Core এর মাধ্যমে ডাটাবেস টেবিল তৈরি করবে।


ধাপ ৬: রান করা এবং ব্রাউজ করা

১. Visual Studio তে Start (বা F5) ক্লিক করে প্রজেক্ট রান করুন। ২. ব্রাউজারে https://localhost:5001/Home/Index এবং https://localhost:5001/Home/About এ গিয়ে পেজগুলো দেখুন।


সংক্ষেপে ASP.NET দিয়ে ওয়েব অ্যাপ তৈরি

  1. প্রজেক্ট তৈরি: Visual Studio তে নতুন ASP.NET প্রজেক্ট তৈরি করুন।
  2. Model-View-Controller: MVC প্যাটার্ন অনুসরণ করুন, যেখানে ডেটা মডেল, কন্ট্রোলার এবং ভিউ আলাদাভাবে সংরক্ষিত হয়।
  3. Entity Framework: ডাটাবেস কানেক্টিভিটির জন্য Entity Framework Core ব্যবহার করুন।
  4. মাইগ্রেশন চালানো: মাইগ্রেশন চালিয়ে ডাটাবেসে টেবিল তৈরি করুন।
  5. রান ও ব্রাউজ: প্রজেক্ট রান করুন এবং ব্রাউজারে পেজগুলো দেখুন।

ASP.NET দিয়ে ওয়েব অ্যাপ তৈরি করার মাধ্যমে সহজে ডাইনামিক এবং স্কেলেবল ওয়েবসাইট এবং API তৈরি করা সম্ভব।

Content added By

MVC প্যাটার্ন এবং ASP.NET MVC

MVC (Model-View-Controller) হলো একটি ডিজাইন প্যাটার্ন যা সফটওয়্যার ডেভেলপমেন্টে কোডকে সংগঠিত করতে সাহায্য করে। ASP.NET MVC হলো এই প্যাটার্নের উপর ভিত্তি করে তৈরি করা Microsoft-এর একটি ওয়েব ফ্রেমওয়ার্ক, যা দ্রুত এবং সহজে ওয়েব অ্যাপ্লিকেশন তৈরি করতে সহায়ক। ASP.NET MVC ফ্রেমওয়ার্ক ব্যবহার করে ওয়েব অ্যাপ্লিকেশনকে মডুলার, পড়তে সহজ, এবং মেইনটেইনেবল করা যায়।


MVC প্যাটার্নের মৌলিক উপাদানসমূহ

MVC প্যাটার্নে তিনটি মূল উপাদান থাকে:

  1. Model: অ্যাপ্লিকেশনের ডেটা এবং ব্যবসায়িক লজিক পরিচালনা করে।
  2. View: ব্যবহারকারীর জন্য UI (User Interface) বা ভিজ্যুয়াল রেন্ডারিং পরিচালনা করে।
  3. Controller: Model এবং View এর মধ্যবর্তী সংযোগ তৈরি করে এবং ব্যবহারকারীর ইনপুট হ্যান্ডল করে।

এই তিনটি উপাদান নির্দিষ্ট দায়িত্ব পালন করে এবং একে অপরের সাথে যোগাযোগ করে পুরো অ্যাপ্লিকেশনটিকে কাজ করতে সহায়ক হয়।


ASP.NET MVC

ASP.NET MVC হলো একটি ওয়েব ফ্রেমওয়ার্ক যা Microsoft এর ASP.NET ফ্রেমওয়ার্কের অংশ। এটি MVC প্যাটার্ন ব্যবহার করে ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য ডিজাইন করা হয়েছে। ASP.NET MVC ব্যবহার করে ডেভেলপাররা কন্ট্রোলার, ভিউ, এবং মডেল আলাদা করে কোড লিখতে পারে, যা কোড পুনঃব্যবহার এবং মেইনটেন করার সুবিধা দেয়।


MVC প্যাটার্নের উপাদানগুলোর ভূমিকা ASP.NET MVC তে

Model: অ্যাপ্লিকেশনের ডেটা লজিক সংরক্ষণ করে। যেমন, ডাটাবেস টেবিলের সাথে যোগাযোগ করে ডেটা CRUD (Create, Read, Update, Delete) অপারেশন সম্পন্ন করা।

  • উদাহরণ: Employee ক্লাস একটি Model হিসেবে কাজ করতে পারে।

View: UI-এর জন্য দায়ী এবং এটি ব্যবহারকারীর জন্য ডেটা প্রদর্শন করে। ASP.NET MVC তে ভিউ সাধারণত Razor টেমপ্লেট ইঞ্জিন ব্যবহার করে .cshtml ফাইল হিসেবে থাকে।

  • উদাহরণ: Index.cshtml নামে একটি ভিউ যেখানে ব্যবহারকারীর জন্য ডেটা দেখানো হয়।

Controller: Model এবং View এর মধ্যে সংযোগকারী হিসেবে কাজ করে। ব্যবহারকারীর ইনপুট গ্রহণ করে এবং সঠিক Model এবং View এ তথ্য প্রেরণ করে।

  • উদাহরণ: HomeController ক্লাসে Index অ্যাকশন তৈরি করা হয়েছে।

ASP.NET MVC অ্যাপ্লিকেশন তৈরি করা

ASP.NET MVC অ্যাপ্লিকেশন তৈরি করতে Visual Studio ব্যবহার করা হয়। নিচে ASP.NET MVC অ্যাপ্লিকেশন তৈরি করার ধাপগুলো দেওয়া হলো:

নতুন প্রজেক্ট তৈরি করুন:

  • Visual Studio তে যান এবং Create a new project নির্বাচন করুন।
  • "ASP.NET Core Web Application" নির্বাচন করুন এবং প্রজেক্টের নাম দিন।
  • টেমপ্লেট হিসেবে "Web Application (Model-View-Controller)" নির্বাচন করুন।

মডেল তৈরি করুন:

  • প্রজেক্টের Models ফোল্ডারে একটি ক্লাস তৈরি করুন, যা ডাটাবেস টেবিলের জন্য Model হিসেবে কাজ করবে।

কন্ট্রোলার তৈরি করুন:

  • Controllers ফোল্ডারে একটি কন্ট্রোলার তৈরি করুন এবং অ্যাকশন মেথড যোগ করুন যা ডেটা প্রক্রিয়া করবে।

ভিউ তৈরি করুন:

  • Views ফোল্ডারে প্রয়োজনীয় .cshtml ফাইল তৈরি করুন। Razor টেমপ্লেট ব্যবহার করে ডেটা প্রদর্শন করুন।

ASP.NET MVC এর গুরুত্বপূর্ণ ফিচারসমূহ

Routing: অ্যাপ্লিকেশনের URL কন্ট্রোলারের অ্যাকশনের সাথে সংযুক্ত করতে সাহায্য করে। উদাহরণ: https://yoursite.com/home/index URL এর জন্য HomeController এর Index অ্যাকশন চালাবে।

Model Binding: ইনপুট ডেটা (যেমন ফর্ম ডেটা) Model-এ বাইন্ড করে যাতে সহজেই ব্যবহার করা যায়।

Validation: Model এ ডেটা ভ্যালিডেশনের জন্য Data Annotations ব্যবহার করা যায়। এটি ডেটা ইনপুটের নির্ভুলতা নিশ্চিত করতে সহায়ক।

Dependency Injection: ASP.NET MVC Dependency Injection সমর্থন করে, যা ক্লাসগুলোকে আরো মডুলার এবং টেস্টেবল করে তোলে।

Filters: Action Filters, Authorization Filters ইত্যাদি ব্যবহার করে বিভিন্ন লেভেলে রিকোয়েস্ট ম্যানিপুলেট করা যায়।


উদাহরণ: একটি সহজ ASP.NET MVC অ্যাপ্লিকেশন

১. Model তৈরি করা

public class Product
{
    public int ID { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

২. Controller তৈরি করা

using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;

public class ProductController : Controller
{
    public IActionResult Index()
    {
        var products = new List<Product>
        {
            new Product { ID = 1, Name = "Laptop", Price = 1000 },
            new Product { ID = 2, Name = "Smartphone", Price = 700 }
        };
        
        return View(products);
    }
}

৩. View তৈরি করা

Index.cshtml ফাইল তৈরি করুন এবং নিচের কোড যুক্ত করুন:

@model IEnumerable<Product>

<h2>Product List</h2>
<table>
    <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Price</th>
    </tr>
    @foreach (var product in Model)
    {
        <tr>
            <td>@product.ID</td>
            <td>@product.Name</td>
            <td>@product.Price</td>
        </tr>
    }
</table>

এই উদাহরণটি একটি প্রাথমিক অ্যাপ্লিকেশন তৈরি করে যেখানে প্রোডাক্টের তালিকা একটি কন্ট্রোলার থেকে ভিউতে প্রেরণ করা হয়েছে এবং টেবিল আকারে প্রদর্শিত হয়েছে।


ASP.NET MVC এর সুবিধা

  1. কোড মেইনটেনেবল এবং রিইউজেবল: MVC প্যাটার্ন কোডকে মডুলার আকারে বিভক্ত করে, যা রিইউজেবল এবং মেইনটেন করা সহজ।
  2. টেস্টেবল: Controller এবং Model আলাদা থাকায় ইউনিট টেস্ট করা সহজ।
  3. Separation of Concerns (SoC): Model, View, এবং Controller এর মধ্যে দায়িত্ব আলাদা থাকে।
  4. বিল্ট-ইন ফিচার: ASP.NET MVC তে ডাটাবেস কানেক্টিভিটি, ফর্ম ভ্যালিডেশন, অথেনটিকেশন, অথোরাইজেশন ইত্যাদি বিল্ট-ইন ফিচার রয়েছে।

সংক্ষেপে

উপাদানভূমিকা
Modelডেটা এবং ব্যবসায়িক লজিক পরিচালনা করে
ViewUI (User Interface) প্রদান করে
ControllerModel এবং View এর মধ্যে সংযোগ স্থাপন করে এবং রিকোয়েস্ট হ্যান্ডল করে

ASP.NET MVC হলো একধরনের MVC ভিত্তিক ওয়েব ফ্রেমওয়ার্ক, যা Microsoft এর ASP.NET এর উপর ভিত্তি করে তৈরি। এটি উচ্চ কার্যক্ষমতা এবং মডুলারিটির জন্য পরিচিত এবং ওয়েব ডেভেলপমেন্টে অত্যন্ত জনপ্রিয়।

Content added By

REST API তৈরি এবং ব্যবহারের নিয়ম

REST API হলো এমন একটি সফটওয়্যার ইন্টারফেস যা ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ সহজ করে তোলে। REST API সাধারণত HTTP প্রোটোকল ব্যবহার করে এবং ডেটা ফরম্যাট হিসেবে JSON ব্যবহার করে। ASP.NET Core দিয়ে REST API তৈরি করা সহজ, এবং এটি সিস্টেমের বিভিন্ন অংশের মধ্যে যোগাযোগ করতে ব্যবহৃত হয়।

REST API তৈরির ধাপসমূহ

১. নতুন ASP.NET Core API প্রজেক্ট তৈরি

১. Visual Studio ওপেন করুন। ২. File > New > Project এ যান। ৩. ASP.NET Core Web Application নির্বাচন করুন এবং Next ক্লিক করুন। ৪. প্রজেক্টের জন্য নাম লিখুন এবং Create ক্লিক করুন। ৫. API টেমপ্লেট নির্বাচন করুন এবং Create ক্লিক করুন।


২. API এর জন্য Model তৈরি করা

ধরা যাক, আমরা একটি Student মডেল তৈরি করব যেখানে শিক্ষার্থীর তথ্য থাকবে।

Models ফোল্ডারে Student.cs নামে একটি ক্লাস তৈরি করুন এবং নিচের কোড লিখুন:

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

৩. DbContext তৈরি করা

ASP.NET Core এ Entity Framework Core ব্যবহার করে ডাটাবেসে ডেটা সংরক্ষণ করা যায়। DbContext সেটআপ করতে প্রথমে Entity Framework Core প্যাকেজটি ইনস্টল করুন:

Entity Framework ইনস্টল করা

Package Manager Console এ নিচের কমান্ডটি রান করুন:

Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools

Models ফোল্ডারে ApplicationDbContext.cs নামে একটি ক্লাস তৈরি করুন এবং নিচের কোডটি লিখুন:

using Microsoft.EntityFrameworkCore;

public class ApplicationDbContext : DbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
    {
    }

    public DbSet<Student> Students { get; set; }
}

৪. DbContext রেজিস্টার করা এবং কানেকশন স্ট্রিং সেটআপ

appsettings.json ফাইলে ডাটাবেস কানেকশন স্ট্রিং যোগ করুন:

"ConnectionStrings": {
    "DefaultConnection": "Server=your_server_name;Database=your_database_name;User Id=your_username;Password=your_password;"
}

Startup.cs ফাইলে DbContext রেজিস্টার করুন:

using Microsoft.EntityFrameworkCore;

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers();
    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}

৫. মাইগ্রেশন তৈরি এবং ডাটাবেস আপডেট করা

Package Manager Console এ নিচের কমান্ডগুলো রান করুন:

Add-Migration InitialCreate
Update-Database

এতে Students টেবিল ডাটাবেসে তৈরি হবে।


৬. API কন্ট্রোলার তৈরি করা

API কন্ট্রোলার CRUD অপারেশন পরিচালনা করবে। Controllers ফোল্ডারে StudentsController.cs নামে একটি নতুন কন্ট্রোলার তৈরি করুন এবং নিচের কোডটি লিখুন:

using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

[Route("api/[controller]")]
[ApiController]
public class StudentsController : ControllerBase
{
    private readonly ApplicationDbContext _context;

    public StudentsController(ApplicationDbContext context)
    {
        _context = context;
    }

    // GET: api/Students
    [HttpGet]
    public async Task<ActionResult<IEnumerable<Student>>> GetStudents()
    {
        return await _context.Students.ToListAsync();
    }

    // GET: api/Students/5
    [HttpGet("{id}")]
    public async Task<ActionResult<Student>> GetStudent(int id)
    {
        var student = await _context.Students.FindAsync(id);

        if (student == null)
        {
            return NotFound();
        }

        return student;
    }

    // POST: api/Students
    [HttpPost]
    public async Task<ActionResult<Student>> PostStudent(Student student)
    {
        _context.Students.Add(student);
        await _context.SaveChangesAsync();

        return CreatedAtAction("GetStudent", new { id = student.Id }, student);
    }

    // PUT: api/Students/5
    [HttpPut("{id}")]
    public async Task<IActionResult> PutStudent(int id, Student student)
    {
        if (id != student.Id)
        {
            return BadRequest();
        }

        _context.Entry(student).State = EntityState.Modified;

        try
        {
            await _context.SaveChangesAsync();
        }
        catch (DbUpdateConcurrencyException)
        {
            if (!_context.Students.Any(e => e.Id == id))
            {
                return NotFound();
            }
            else
            {
                throw;
            }
        }

        return NoContent();
    }

    // DELETE: api/Students/5
    [HttpDelete("{id}")]
    public async Task<IActionResult> DeleteStudent(int id)
    {
        var student = await _context.Students.FindAsync(id);
        if (student == null)
        {
            return NotFound();
        }

        _context.Students.Remove(student);
        await _context.SaveChangesAsync();

        return NoContent();
    }
}

ব্যাখ্যা

  • [HttpGet]: ডেটা রিড করে।
  • [HttpPost]: নতুন ডেটা তৈরি করে।
  • [HttpPut]: বিদ্যমান ডেটা আপডেট করে।
  • [HttpDelete]: বিদ্যমান ডেটা মুছে ফেলে।

৭. API পরীক্ষা করা

  1. Visual Studio তে Start (বা F5) ক্লিক করে প্রজেক্ট রান করুন।
  2. Swagger ব্যবহার করে API এর প্রতিটি এন্ডপয়েন্ট পরীক্ষা করা যাবে, যেমন /api/Students
  3. Postman ব্যবহার করেও API এর প্রতিটি এন্ডপয়েন্ট পরীক্ষা করা যায়।

REST API ব্যবহারের নিয়ম

  • GET (Retrieve): /api/Students এবং /api/Students/{id} এন্ডপয়েন্টে ব্যবহার করা হয় ডেটা রিড করতে।
  • POST (Create): /api/Students এন্ডপয়েন্টে ব্যবহার করা হয় নতুন ডেটা তৈরি করতে।
  • PUT (Update): /api/Students/{id} এন্ডপয়েন্টে বিদ্যমান ডেটা আপডেট করতে ব্যবহার করা হয়।
  • DELETE (Delete): /api/Students/{id} এন্ডপয়েন্টে বিদ্যমান ডেটা মুছে ফেলা হয়।

REST API তৈরির সুবিধা

  1. অ্যাপ্লিকেশনের কম্প্যাটিবিলিটি বৃদ্ধি পায়: REST API ব্যবহার করে বিভিন্ন অ্যাপ্লিকেশন এবং ক্লায়েন্ট সহজে যোগাযোগ করতে পারে।
  2. সাধারণ এবং সংক্ষিপ্ত প্রোটোকল: HTTP প্রোটোকল ব্যবহার করায় ডেটা আদান-প্রদানে কম জটিলতা থাকে।
  3. স্ট্যাটলেস এবং ক্যাশযোগ্য: REST API স্ট্যাটলেস হওয়ায় প্রতি অনুরোধের জন্য নতুন রেসপন্স তৈরি হয়। ক্যাশ করার সুবিধাও থাকে।
  4. JSON ফরম্যাটে ডেটা: REST API JSON ফরম্যাটে ডেটা প্রদান করে, যা হালকা এবং সহজেই ব্যবহৃত হয়।

ASP.NET Core দিয়ে REST API তৈরি করে ডায়নামিক এবং স্কেলেবল ওয়েব এপ্লিকেশন তৈরি করা যায়, যা ডেটাবেস এবং ক্লায়েন্টের মধ্যে সংযোগ রক্ষা করে।

Content added By
Promotion